// const Promise = require('./promise');

// const p1 = new Promise((resolve, reject) => {
//   reject(1);
// });

// p1.then(
//   (res) => {
//     console.log('success', res);
//     return 'promise1';
//   },
//   (reason) => {
//     console.log('error', reason);
//   }
// ).then(
//   (res) => {
//     console.log('success2', res);
//   },
//   (r) => {
//     console.log('error2', r);
//   }
// );

// Promise.resolve(new Promise((resolve) => resolve(1))).then((res) => {
//   console.log(res);
// });

// const p1 = Promise.resolve(1);
// const p2 = Promise.resolve(2);
// Promise.all([p1, p2]).then(
//   (res) => {
//     console.log(res);
//   },
//   (r) => {
//     console.log(r);
//   }
// );

// const promise1 = Promise.resolve(3);
// const promise2 = new Promise((resolve, reject) =>
//   setTimeout(reject, 100, 'foo')
// );
// const promises = [promise1, promise2];

// Promise.allSettled(promises)
//   .then((results) => {
//     console.log(results);
//   })
//   .catch((r) => {
//     console.log(r);
//   });

// const pErr = new Promise((resolve, reject) => {
//   reject('总是失败');
// });

// const pSlow = new Promise((resolve, reject) => {
//   setTimeout(resolve, 500, '最终完成');
// });

// const pFast = new Promise((resolve, reject) => {
//   setTimeout(resolve, 100, '很快完成');
// });

// Promise.any([pErr])
//   .then((value) => {
//     console.log(value);
//     // pFast fulfils first
//   })
//   .catch((r) => {
//     console.log(r);
//   });

const fetch = () => {
  return new Promise((resolve, reject) => {
    reject(1);
  });
};

fetch()
  .finally(function () {
    console.log('finally');
  })
  .then((res) => {
    console.log(res);
  })
  .catch((r) => {
    console.log(r, 'err');
  });
